package vip.sweet.biz.modular.product.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author ASUS
 * @Date 2025/10/4 20:28
 * @Descripition
 */
@TableName("biz_products")
@Schema(description = "业务逻辑产品实体类")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BizProducts {
    @Schema(description = "产品ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;
    @Schema(description = "产品名称")
    private String name;
    @Schema(description = "产品描述")
    private String description;
    @Schema(description = "产品价格")
    private Double price;
    @Schema(description = "产品原价")
    private Double originalPrice;
    @Schema(description = "产品折扣")
    private Double discount;
    @Schema(description = "产品分类")
    private String category;
    @Schema(description = "产品子分类")
    private String subCategory;
    @Schema(description = "产品工艺")
    private String craftsmanship;
    @Schema(description = "产品评分")
    private Double rating;
    @Schema(description = "产品评价数")
    private Integer reviewCount;
    @Schema(description = "产品销量")
    private Integer salesCount;
    @Schema(description = "产品库存")
    private Integer stock;
    @Schema(description = "产品创建人")
    private String createdBy;
    @Schema(description = "产品创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;
    @Schema(description = "产品更新时间")
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;
    @Schema(description = "是否新品")
    private Integer isNew;
    @Schema(description = "是否热卖")
    private Integer isHot;
    @Schema(description = "是否优惠")
    private Integer isDiscount;
    @Schema(description = "是否精选")
    private Integer isFeatured;
    @Schema(description = "产品重量")
    private Double weight;
    @Schema(description = "包装信息")
    private String packaging;
    @Schema(description = "产品保质期")
    private String shelfLife;
    @Schema(description = "产品产地")
    private String origin;
    @Schema(description = "产品详情")
    private String detailDescription;
}
